/* eslint-disable */
import axios from 'axios'
import qs from 'qs'
import { Toast,Indicator  } from 'mint-ui';
/**
* 定义请求常量
* TIME_OUT、ERR_SUCCESS
*/
export const TIME_OUT = 7000;    // 请求超时时间
export const ERR_SUCCESS = 0;      // 请求成功返回状态，字段和后台统一
export const ERR_ERROR = 1;      // 请求成功返回状态，字段和后台统一
let baseUrl = process.env.BASE_URL   // 引入全局url，定义在全局变量process.env中
if (process.env.NODE_ENV === 'development') {
  baseUrl = process.env.BASE_URL+'data'
}
export const APIURL=baseUrl;
// 请求超时时间
axios.defaults.timeout = TIME_OUT  
// 封装请求拦截
axios.interceptors.request.use(
	config => {
    let data=config.data;
    let token = localStorage.getItem('token')   // 获取token
    Indicator.open();
		//config.headers['Content-Type'] = 'application/x-www=form-urlencoded;charset=UTF-8'
    if(token != null){                          // 如果token不为null，否则传token给后台
      if(typeof data=='object'){
        data.append('user_token', token)
      }else{
        data+=`&user_token=${token}`
      }
			config.data = data
		}
		return config
	},
	error => {
		return Promise.reject(error)
	}
)
// 封装响应拦截，判断token是否过期
axios.interceptors.response.use(
  response => {
    let {data} = response
    Indicator.close();
    if (parseInt(data.errno) === ERR_SUCCESS) {    // 如果后台返回的0表示数据正确
      return Promise.resolve(response)
    } else {
      Toast(data.data.msg);
      //localStorage.removeItem('token')          // token过期，移除token
    }
  },
  error => {
    Indicator.close();
    Toast('服务器返回错误');
    return Promise.reject(error)
  }
)


// 封装普通请求
export function fetch(requestUrl,method, params = '') {
  let data = qs.stringify(params)
  return axios({
    url: requestUrl,
    method: method,
    data: data
  })
}

// 封装上传请求
export function fetchImg(requestUrl, params = '') {
  return axios({
    url: requestUrl,
    method: 'post',
    data: params
  })
}